/*
 * Manejo mas detallado de las caracteristicas de un carro!!
 */
package Vehiculo;

import java.util.Date;


public final class carro extends vehiculos{
    
     String  pdv = "pdv";
     float   Kilometros_pdv = 5000;
     /*------------------------------*/
     String  castrol = "castrol";
     float Kilometros_castrol = 10000;
     /*------------------------------*/
     String  shell_helix = "Shell_helix";
     float Kilometros_shell_helix = 7000;
    
    
    
    private String AceiteMotor;
    private String Refrigerante;
    private String LigaFreno;
    private String AceiteCaja;
    private String AceiteDireccion;
    private String Gasolina;
    private String MarcaBateria;
    private String tipoDireccion;
    private float  litro;
    private float  ultimoCambioAceite; 
    private String TipoRing;
    private float  Kilometraje;
    private float  presionCauchos;
    private int    Ncilindros;
    private String libreMantenimiento;
    
    
    
    public carro(){
        super();
        AceiteMotor = "";
        Refrigerante = "";
        LigaFreno = "";
        AceiteCaja = "";
        AceiteDireccion = "";
        Gasolina = "";
        MarcaBateria = "";
        tipoDireccion = "";
        litro = (float)0.0;
        ultimoCambioAceite = (float)0.0;
        TipoRing = "";
        Kilometraje = (float) 0.0;
        presionCauchos = (float) 0.0;
        Ncilindros = 0; 
    }
    
    
    public carro(String Modelo, String tipovehiculo, String color, String serial,   
                 Date año,int idcarro, String aceiteM,String refrigerante,String ligafreno,String aceiteC, 
                 String aceiteD, String gasolina, String MarcaB, String tipoD, float litroMotor, 
                 float kmCambioaceite, String tipR, float kilometroTotal, float PresionC,
                 int ncilindros, String LibreM, String cedulaUsuario){
        
        super(Modelo, tipovehiculo, color, serial, año, idcarro, cedulaUsuario);
        
    if(aceiteM != null && gasolina != null && tipoD != null && kilometroTotal > 0.0 
       && PresionC > 0.0 && kmCambioaceite > 0.0)
        
       {
            
                AceiteMotor  = aceiteM;
                AceiteCaja   = aceiteC;
                Refrigerante = refrigerante;
                Kilometraje  = kilometroTotal;
                this.LigaFreno = ligafreno;
                this.AceiteDireccion = aceiteD;
                this.Gasolina =gasolina;
                this.MarcaBateria = MarcaB;
                this.tipoDireccion =tipoD;
                this.litro =litroMotor;
                this.ultimoCambioAceite =kmCambioaceite;
                this.TipoRing =tipR;
                this.presionCauchos  =PresionC;
                this.Ncilindros =ncilindros;
                this.libreMantenimiento  =LibreM;
                
                
            }
        
        else{
                AceiteMotor  = "";
                AceiteCaja   = "";
                Refrigerante = "";
                Kilometraje  = (float)0.0;
                this.LigaFreno = "";
                this.AceiteDireccion = "";
                this.Gasolina ="";
                this.MarcaBateria = "";
                this.tipoDireccion = "";
                this.litro = (float)0.0;
                this.ultimoCambioAceite = (float) 0.0;
                this.TipoRing = "";
                this.presionCauchos =(float)0.0;
                this.Ncilindros = 0;
                               
        }     
        
    }
    
    
    public String getAceiteMotor(){
        return AceiteMotor;
        
    }
    
    public String getAceiteCaja(){
        return AceiteCaja;
    }
    
    public String getAceiteDireccion(){
        return AceiteDireccion;
    }
    
    public String getRefrigerante(){
        return this.Refrigerante;
    }
    
     public String getGasolina(){
        return Gasolina;
    }
     
      public String getMarcaBateria(){
        return MarcaBateria;
    }
      
      public String getLigaFreno(){
        return LigaFreno;
    }
      
      
       public String gettipoDireccion(){
        return tipoDireccion;
    }
      
      
       public float getLitros(){
        return litro;
    }
       
        public float getUltimocambioAceite(){
        return ultimoCambioAceite;
    }
    
    
     public float getKilometrajeTotal(){
        return Kilometraje;
    }
    
      public String getTipoRing(){
        return TipoRing;
    }
      
       public String getLibreMantenimient(){
        return libreMantenimiento;
    }
       
        public int getNcilindros(){
        return Ncilindros;
    }
         public float getPresionCauchos(){
        return presionCauchos;
    }
    
         // metodos SET
         
      public void setAceiteMotor(String aceite){
         this.AceiteMotor = aceite;
        
    }
    
    public void setAceiteCaja(String aceitecaja){
         this.AceiteCaja = aceitecaja;
    }
    
    public void setAceiteDireccion(String aceitedireccion){
        this.AceiteDireccion = aceitedireccion;
    }
    
    public void setRefrigerante(String refrig){
        this.Refrigerante = refrig;
    }
    
     public void setGasolina(String gasolina){
        this.Gasolina = gasolina;
    }
     
      public void setMarcaBateria(String bateria){
         this.MarcaBateria = bateria;
    }
      
      public void setLigaFreno(String lfrenos){
         this.LigaFreno = lfrenos;
    }
      
      
       public void settipoDireccion(String tdireccion){
         this.tipoDireccion = tdireccion;
    }
      
      
       public void setLitros(float litros){
        this.litro = litros;
    }
       
        public void setUltimocambioAceite(float ultimoCambioA){
         this.ultimoCambioAceite = ultimoCambioA;
    }
    
    
     public void setKilometraje(float kilometros){
        this.Kilometraje = kilometros;
    }
    
      public void setTipoRing(String ring){
         this.TipoRing = ring;
    }
      
       public void setLibreMantenimient(String libre){
         this.libreMantenimiento = libre;
    }
       
        public void setNcilindros(int ncilindros){
        this.Ncilindros = ncilindros;
    }
         public void setPresionCauchos(float pcauchos){
         this.presionCauchos = pcauchos;
    }    
         
    public String statusAceite(float kilometrosActual, float kilometroCambio, String tipoAceite){
        
        String urgente = "URGENTE";
        String atencion = "ATENCION";
        String  normal = "NORMAL";
        String  nada  = "NO RECONOCIDO";
        
        float kilometroLocal = kilometrosActual - kilometroCambio;
        
                
        switch(tipoAceite)
        
        {
           
        case "pdv":
            
            if(kilometroLocal > Kilometros_pdv) 
                 return  urgente.toLowerCase();   
            else if(kilometroLocal < Kilometros_pdv)
                  return normal.toLowerCase();
                else if(kilometroLocal == Kilometros_pdv)
                  return  atencion.toLowerCase();
        break;
            
         case "Shell_helix":
              if(kilometroLocal > Kilometros_shell_helix)    
               return atencion.toLowerCase(); 
              else if(kilometroLocal < Kilometros_shell_helix )
                  return normal.toLowerCase();
                else if(kilometroLocal == Kilometros_shell_helix)
                  return  atencion.toLowerCase();
        break;
             
         case "castrol":
             if(kilometroLocal < Kilometros_castrol )    
               return normal.toLowerCase(); 
              else if(kilometroLocal > Kilometros_castrol)
                  return normal.toLowerCase();
                else if(kilometroLocal == Kilometros_castrol)
                  return  atencion.toLowerCase();
             
             break;
                      
        }
       
        
        return nada.toLowerCase();
       
    
}

    
    
}